package http.raw;

import http.HTTPMethod;

import java.util.Map;

public class HTTPRequestParam {

    //请求方式
    private HTTPMethod method;
    //超时时间
    private int timeout;
    //URL地址
	private String url;
    //请求头参数
	private Map<String, String> headers;
    //URL参数
	private Map<String, String> params;
    //POST内容（键值对）
	private Map<String, String> keyPairData;
    //POST内容（字符串）
    private String bodyData;

    /**
     * 获取请求方式
     */
    public HTTPMethod getMethod() {
        return method;
    }

    /**
     * 设置请求方式
     * @param method
     * @return
     */
    public HTTPRequestParam setMethod(HTTPMethod method) {
        this.method = method;
        return this;
    }

    /**
     * 获取请求超时时间
     * @return
     */
    public int getTimeout() {
        return timeout;
    }

    /**
     * 设置请求超时时间
     * @param timeout
     */
    public void setTimeout(int timeout) {
        this.timeout = timeout;
    }

    /**
     * 获取URL地址
     * @return
     */
    public String getUrl() {
        return url;
    }

    /**
     * 设置URL地址
     * @param url
     * @return
     */
	public HTTPRequestParam setUrl(String url) {
		this.url = url;
		return this;
	}

    /**
     * 获取请求头参数
     * @return
     */
    public Map<String, String> getHeaders() {
        return headers;
    }

    /**
     * 设置请求头参数
     * @param headers
     * @return
     */
	public HTTPRequestParam setHeaders(Map<String, String> headers) {
		this.headers = headers;
		return this;
	}

    /**
     * 获取URL参数
     * @return
     */
    public Map<String, String> getParams() {
        return params;
    }

    /**
     * 设置URL参数
     * @param params
     * @return
     */
	public HTTPRequestParam setParams(Map<String, String> params) {
		this.params = params;
		return this;
	}

    /**
     * 获取POST内容（键值对）
     * @return
     */
    public Map<String, String> getKeyPairData() {
        return keyPairData;
    }

    /**
     * 设置POST内容（键值对）
     * @param keyPair
     * @return
     */
	public HTTPRequestParam setKeyPairData(Map<String, String> keyPair) {
		this.keyPairData = keyPair;
		return this;
	}

    /**
     * 获取POST内容（字符串）
     * @return
     */
    public String getBodyData() {
        return bodyData;
    }

    /**
     * 设置POST内容（字符串）
     * @param bodyData
     * @return
     */
	public HTTPRequestParam setBodyData(String bodyData) {
		this.bodyData = bodyData;
		return this;
	}

    /**
     * 构造函数
     * @param method
     */
    public HTTPRequestParam(HTTPMethod method, String url) {
        this.method = method;
        this.url = url;
    }
}
